<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 题目一
    // var a = 2;

    // function t1() {
    //   console.log("this.a", this.a);
    // }

    // var obj = {
    //   a: 3,
    //   q: function () {
    //     console.log("this", this);
    //     t1();
    //   },
    //   p: t1,
    // };

    // var f = obj.q;
    // var f2 = obj.p;

    // t1();2
    // obj.q();3
    // obj.p(); 3
    // f();2
    // f2();2

    // 题目二
    // var myObject = {
    //   foo: 'bar',
    //   func: () => {
    //     var self = this;
    //     console.log(this.foo);undefined
    //     console.log(self.foo);undefined
    //     (function () {
    //       console.log(this.foo);undefined
    //       console.log(self.foo);undefined
    //     })();
    //   }
    // };
    // myObject.func();


    // 题目三
    // let obj = {
    //   bar: 1,
    //   f: function () {
    //     console.log(this.bar);
    //   }
    // }
    // obj.f();
    // var bar = 2;
    // let f = obj.f;
    // f();
      // 1  2


    // 题目四
    // (function () {
    //   var val = 1;
    //   var json = {
    //     val: 10,
    //     dbl: function () {
    //       val *= 2;
    //     }
    //   };
    //   json.dbl();
    //   console.log(json.val + val);
    // })(); 
    // 12

    // 题目五
    // var fullName = 'language';
    // var obj = {
    //   fullName: 'javascript',
    //   prop: {
    //     getFullName: function () {
    //       return this.fullName;
    //     }
    //   }
    // };
    // console.log(obj.prop.getFullName());undefined
    // var test = obj.prop.getFullName;
    // console.log(test());language

  </script>
</body>

</html>